/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package model.negocio;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import model.beans.Cliente;
import model.dao.ClienteDAO;

/**
 *
 * @author Carol
 */
public class ClienteNegocio {
    public boolean salvar(Cliente cliente){
        try{
            ClienteDAO dao = new ClienteDAO();
            dao.inserir(cliente);
            return true;
        }catch(Exception ex){
            return false;
        }
    }
    
    public List<Cliente> listar(){
        try{
            ClienteDAO dao = new ClienteDAO();
            List<Cliente> lista = dao.listar();
            return lista;
        }catch(Exception ex){
            return null;
        }
    }
    
    public Cliente buscar(int id){
        try{
            ClienteDAO dao = new ClienteDAO();
            Cliente cliente = dao.buscar(id);
            return cliente;
        }catch(Exception ex){
            return null;
        }
    }
    
    public boolean deletar(int id){
        try{
            ClienteDAO dao = new ClienteDAO();
            dao.deletar(id);
            return true;
        }catch(Exception ex){
            return false;
        }
    }
    
    public boolean alterar(Cliente cliente){
        try{
            ClienteDAO dao = new ClienteDAO();
            dao.alterar(cliente);
            return true;
        }catch(Exception ex){
            return false;
        }
    }
    
    public List<Object> validaDados(Cliente cliente){
        List<Object> lista = new ArrayList<Object>();
        try{
            Date data = new Date(System.currentTimeMillis());
            Date data2 = cliente.getDtNasc();
            if(data2.after(data)){
                //Se a data for maior que a data atual
                lista.add(false);
                lista.add("A Data de Nascimento não pode ser maior que a data atual!");
                return lista;
            }
            ClienteDAO dao = new ClienteDAO();
            List<Cliente> listaCli = dao.listar();
            for(Cliente c : listaCli){
                if(c.getEmail().equals(cliente.getEmail())){
                    lista.add(false);
                    lista.add("Já existe um cliente com o mesmo email cadastrado no sistema!");
                    return lista;
                }
                if(c.getCpf().equals(cliente.getCpf())){
                    lista.add(false);
                    lista.add("Já existe um cliente com o mesmo cpf cadastrado no sistema!");
                    return lista;
                }
            }
            lista.add(true);
            return lista;
        }catch(Exception ex){
            lista.add(false);
            lista.add("Ocorreu algum erro no sistema! Tente Novamente!");
            return lista;
        }
    }
}
